# -*- coding: utf-8 -*-
"""
TG组件包 - 重构后的模块化组件系统
包含所有样式化组件，按功能分类组织
"""

# 导入基础抽象类
from .base import (
    TgComponentMixin, TgBaseComponent, TgBaseWidget, 
    TgLayoutMixin, TgBaseContainer, TgBaseComposite
)

# 导入按钮组件
from .buttons import (
    TgButton, TgOutlineButton
)

# 导入输入组件
from .inputs import (
    TgLabel, TgTextEdit, TgLineEdit, TgComboBox, TgCheckBox, TgDateEdit
)

# 导入容器组件
from .containers import (
    TgGroupBox, TgFrame, TgLayout, TgTabWidget, TgScrollArea
)

# 导入布局组件
from .layouts import (
    TgHBoxLayout, TgGridLayout, TgSplitterLayout
)

# 导入复合组件
from .composite import (
    TgCard, TgButtonGroup, TgFormRow, TgToolBar, TgTable
)

# 导入应用组件
from .application import (
    TgMainWindow, TgContentArea, TgTitleBar, TgWelcomePage,
    TgMenuArea, TgMenuList
)
# 导入图表组件
from .charts import (
    TgLineChart, TgSurface3DChart
)

# 导出所有组件
__all__ = [
    # 基础抽象类
    'TgComponentMixin', 'TgBaseComponent', 'TgBaseWidget', 
    'TgLayoutMixin', 'TgBaseContainer', 'TgBaseComposite',
    
    # 按钮组件
    'TgButton', 'TgOutlineButton',
    
    # 输入组件
    'TgLabel', 'TgTextEdit', 'TgLineEdit', 'TgComboBox', 'TgCheckBox', 'TgDateEdit',
    
    # 容器组件
    'TgGroupBox', 'TgFrame', 'TgLayout',
    'TgHBoxLayout', 'TgGridLayout', 'TgTabWidget', 'TgScrollArea',
    
    # 复合组件
    'TgCard', 'TgButtonGroup', 'TgFormRow', 'TgToolBar', 'TgTable',
    
    # 图表组件
    'TgLineChart', 'TgSurface3DChart',
    # 应用组件
    'TgMainWindow', 'TgContentArea', 'TgTitleBar', 'TgWelcomePage',
    'TgMenuArea', 'TgMenuList', 'TgSplitterLayout',
    
    # 向后兼容的别名
    'StyledLabel', 'StyledButton', 'StyledOutlineButton',
    'StyledTextEdit', 'StyledLineEdit', 'StyledComboBox', 'StyledCheckBox', 'StyledDateEdit',
    'StyledGroupBox', 'StyledFrame', 'StyledLayout',
    'StyledHBoxLayout', 'StyledGridLayout', 'StyledTabWidget', 'StyledScrollArea',
    'CardWidget', 'ButtonGroup', 'FormRow', 'ToolBar'
]

# 向后兼容的别名
StyledLabel = TgLabel
StyledButton = TgButton
StyledOutlineButton = TgOutlineButton
StyledTextEdit = TgTextEdit
StyledLineEdit = TgLineEdit
StyledComboBox = TgComboBox
StyledCheckBox = TgCheckBox
StyledDateEdit = TgDateEdit

# 容器组件的别名 (待重构完成后移除)
StyledGroupBox = TgGroupBox
StyledFrame = TgFrame
StyledLayout = TgLayout
StyledHBoxLayout = TgHBoxLayout
StyledGridLayout = TgGridLayout
StyledTabWidget = TgTabWidget
StyledScrollArea = TgScrollArea

# 复合组件的别名 (待重构完成后移除)
CardWidget = TgCard
ButtonGroup = TgButtonGroup
FormRow = TgFormRow
ToolBar = TgToolBar
